我們在談論機器學習的相關應用時,往往會聽到人工智慧與機器學習,或者深度學習等名詞不斷前後出現,甚至被混用的情形,課程在這邊首先對人工智慧和機器學習兩名詞給出了清楚的定義,人工智慧可以說是一個學科,主要圍繞的是讓機器可以思考與表現得近似人類的方法與理論,而機器學習則是一套工具,讓我們可以使用來解決特定人工智慧領域的問題。人工智慧包含非常多的理論,比如搜尋、對弈、機器學習與自然語言處理等,因此,機器學習可視為人工智慧領域的子集。而深度學習則是一套以類神經網路為架構,進行機器學習的演算法,是目前人工智慧領域最熱門的方法之一,因此深度學習又可被視為是機器學習的子集。
課程前面談到在Google生態系當中的許多產品都有機器學習模型支持著,但是,這些產品背後的機器學習模型是否只是簡單的單一模型,就能有效地解決我們表面上看到的那些問題呢? 其實並不然,課程中給出了一個簡單的例子,在零售業當中,除了我們常常聽到的因為商品銷量不好所造成的滯銷成本外,其實還有個不是那麼明顯但也是相當重要的問題,就是當顧客上門時,我們卻沒有足夠的商品供其購買所生的缺貨(Stock Out)問題,缺貨的問題對於零售業者來說也相當重要,因為除了在購買當下因沒有商品所損失的銷售外,更有導致顧客流失的長遠風險在。
假設你今天想要預測商店中的某個商品是否會缺貨(Stock Out),而我們的手邊主要只有銷售紀錄、歷史庫存等資料時,是否仍是可以建立一個預測缺貨與否或程度的模型? 或許我們可以考慮將這樣的一個問題,利用我們對商業的理解,將其拆分成以下三個子問題:
藉由將原本一個涵蓋範圍與因素較為龐大且複雜的缺貨預測模型,一步步拆解成上述三個較為明確的子問題後,我們將能更有效地利用已有的資料進行建模,在模型訓練完之後使用其進行預測,綜合考量後(如根據預測值,計算在某一週對某商品來說是否會發生需求量超出可在一定時間內達成的庫存量)作為決策依歸。
再以一個Google現有的產品為例,我們可以使用Google Translate App搭配手機相機,將拍攝到的其他語言內容,自動翻譯為我們所熟悉的語言後並呈現在鏡頭捕捉的畫面上(見圖1),這個看似簡單的應用其實背後就蘊藏了相當多各司其職的機器學習模型(見圖2),例如將圖像轉換為文字、判斷為何種語言及翻譯語言等。在學習到了這樣一個觀念後,當下次再使用基於機器學習模型的複雜功能時,除了驚嘆於其強大的表現外,我們也可以加以研究其功能是由哪些模型所組合而成的,除了解其運作方式外,說不定更可從中獲取一些有意思的靈感。
圖1
Source: Coursera - How Google does Machine Learning
圖2
Source: Coursera - How Google does Machine Learning